TOP

SQL Stored Procedures dla SQL Server

Co to jest Stored Procedure?

Stored Procedure (Procedura składowana) to przygotowany kod SQL, który można zapisać, aby można go było używać wielokrotnie.

Tak więc, jeśli masz zapytanie SQL, które piszesz w kółko, zapisz je jako procedurę składowaną, a następnie po prostu wywołaj je w celu wykonania.

Możesz także przekazać parametry do procedury składowanej, aby procedura składowana mogła działać na przekazanych wartościach parametrów.


Stored Procedure Składnia

CREATE PROCEDURE procedure_name
AS 
sql_statement
GO

Wykonywanie Stored Procedure

EXEC procedure_name

Baza demonstracyjna

Poniżej znajduje się przykład z tabeli „Customers” („Klienci”) bazy danych „Northwind”:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Stored Procedure Przykład

Następujące zapytanie SQL tworzy procedurę składowaną o nazwie „SelectAllCustomers”, która wybiera wszystkie rekordy z tabeli Klienci:

CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO

Wykonajmy powyższą procedurę składowaną w następujący sposób:

EXEC SelectAllCustomers

Stored Procedure z jednym parametrem

Poniższe zapytanie SQL tworzy procedurę składowaną, która wybiera klientów z określonego miasta z tabeli Klienci:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30)
AS
SELECT * FROM Customers WHERE City = @City
GO

Wykonajmy powyższą procedurę składowaną w następujący sposób:

EXEC SelectAllCustomers @City = 'London'

Stored Procedure z wieloma parametrami

Bardzo łatwo jest skonfigurować wiele parametrów, a mianowicie wyświetlić listę poszczególnych parametrów i typów danych oddzielonych przecinkami, jak pokazano poniżej.

Poniższa instrukcja SQL tworzy procedurę składowaną, która wybiera klientów z określonego miasta o określonym kodzie pocztowym z tabeli Klienci:

CREATE PROCEDURE SelectAllCustomers @City nvarchar(30), @PostalCode nvarchar(10)
AS
SELECT * FROM Customers WHERE City = @City AND PostalCode = @PostalCode
GO

Wykonajmy powyższą procedurę składowaną w następujący sposób:

EXEC SelectAllCustomers @City = 'London', @PostalCode = 'WA1 1DP'